//class Solution {
//    int dx[4] = { 0,0,-1,1 };
//    int dy[4] = { 1,-1,0,0 };
//    int m;
//    int n;
//    int count;
//public:
//    int numIslands(vector<vector<char>>& grid) {
//        m = grid.size();
//        n = grid[0].size();
//        for (int i = 0; i < m; i++) {
//            for (int j = 0; j < n; j++) {
//                if (grid[i][j] == '1') {
//                    count++;
//                    dfs(grid, i, j);
//
//                }
//
//
//            }
//        }
//        return  count;
//    }
//    void dfs(vector<vector<char>>& grid, int i, int j) {
//        int x, y;
//        grid[i][j] = '0';
//        for (int k = 0; k < 4; k++) {
//            x = i + dx[k]; y = j + dy[k];
//            if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1')dfs(grid, x, y);
//        }
//
//    }
//};
//
